23

» WarCraft 3 / Движение героя стрелками.

Похожие вопросы:

ответ
Я как-то пробовал. Получилась система для плавного движения из 7 триггеров и трёх переменных.
Переменные: X, Y - реальные; Un - юнит.

23

» WarCraft 3 / Что не так?

Похожие вопросы:

ответ
Вот правильные пути:
baal.blp
Baal.mdx
Baal_portrait.mdx
То есть просто названия файлов должны быть путями.
ответ
В событии ставить нужно - Юнит получает предмет
В условиях везде проставь TriggeringUnit, а не Hero Manipulating item
ответ
Выбрать героя добавь еще.
ответ
Да у тебя куча дыр, во-первых ты не запустил триггер 115 области lumber direction, и оно соответственно не реагирует на событие. Во-вторых перепроверь gold проверку условия на да или нет в той карте которую ты отправил стоит нет
А золото не движется потому что ты ожидание 0,5 сек поставил а область в милисекунде от изначальной то есть триггер не успевает запуститься
ответ
Viktor19:
Путь текстуры правильно указал?
да, сейчас вообще обратил внимание что текстуры идущие в комплекте не воспринимаются почему-то, а именно "Shield.blp".
Все равно проблема не решилась, вроде бы смог заменить текстуру, которую не видел но варик не воспринимает модель.
1

23

» WarCraft 3 / Использование предмета на предмет

Похожие вопросы:

ответ
constant native GetSpellTargetItem takes nothing returns item
Подробнее смотри в Common.j или jass API.
ответ
Большинство абилок с баффами не складываются, сделай похищение жизни - на основе ауры вампиризма (если юнит мили) ну или сделай бонус урона на основе Рева друидов-медведей у ночных эльфов.
Складываются только стрелы яда\холода, яды (еще от настроек зависит), всякие предметные хилки на хп и мп (и то если в в настройках указанные разные баффы )
Так же не перебивают друг-друга баффы аур (на оной основе можно сделать хоть 100500 аур с разными баффами и все они будут висеть на юните давая бонусы, не перебивая друг-друга).
ответ
Steal nerves:
Нужно в способностях предмета цели настроить. xgm.guru/p/100/180041 Не помню точно в этом ли примере, там есть настройки клика на предмет. У меня компа просто нет уже =((
А в триггерах проверяешь условием - является ли предмет такой-то такой (в зависимости от события переменные разные, если то каст то цель каста, если то приказ, то цель приказа). то если обязательно нужно условие какое-то
ответ

23

» WarCraft 3 / Высота Z

Похожие вопросы:

ответ
возвращает то же значение Z, что было до деформации.
Вообще-то нет, иначе в Sniper Aren-у было бы невозможно играть.
Скорее всего ты создаёшь "временную" а не "постоянную" деформацию. По завершению постоянной деформации он выдаёт точные данные (деформация длится в течение времени, указанного в триггере)
Если надо делать деформацию на время, то лучше заносить точки в переменные и в нужный момент делать обратную деформацию, возвращающую первоначальное состояние.
ответ
Kinade, изучай на здоровье
ответ
Всё, разобрался, вопрос снимаю)

23

» WarCraft 3 / как сделать из обычного юнита героя

Похожие вопросы:

ответ
  1. тогда сделай при найме героя, чтобы все остальные блокировались для данного игрока.
  2. попробуй тогда сделать условие number of units owned by player matching the codition (matching unit is alive = true) равно 0
ответ
Спецэффекты - advanced filter - белая маска, начиная со цвета 0 0 0 и 50% прозрачности и заканчивая таким же.
ответ
Короче: если ставить юнита, который относится к игроку, но самого игрока нет... То whosyourdaddy не будет работать на всех юнитах этого игрока.

23

» WarCraft 3 / Фаталит карта

Похожие вопросы:

ответ
почему так долго грузится карта
Потому что огромный Нестандартные объекты может тысяч или больше или Спелл герой до 100 уровень.
из них 60 загрузка просто висит на 1/5.
Если нетак? Проверь если есть файлы war3map.j папка Game\WarcraftIII, надо удалить файл. очень давно тоже 1 раз что за вылет или неправильно выполняет триггер.
Есть способы ускорить загрузку карты не экономя в редакторе объектов
Есть Widgetizer, там очень быстрая загрузка игра, но плохо работает спелл или текст.
ответ
Проблема решена.
ответ
Было создано 22 366 679 экземпляров класса CUnitListNode, которые заняли 255.9 МБ памяти.
При очередной попытке выделения, игра упала.
Виной всему утечки памяти: за 21 минуту набралось 80 тысяч групп и 20 тысяч точек.
Также, из-за выполнения большого количества кода, сильно лагает.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
Хорошо, что ты приложил карту, так как в логе маловато информации.
ответ
ScopteRectuS, ну как я и догадывался, что идет рекурсия.
10 событий - юнит получает урон, на одного юнита... Нужны именно такого типа проверки, всегда в условии триггера проверяй от кого урон и какой этот урон с помощью флага глобалки как в примере.В блоге лича хорошо описаны костыли доты, почитай для общего развития чтобы не наступать на эти грабли еще раз.

23

» WarCraft 3 / Как добавить способность герою?

Похожие вопросы:

ответ
Интересно мне, у каких героев ты нашёл эту способность, не имеющуюся в списке способностей, но присутствующую в игре? Прямо очень интересно.
Добавить можно так же как и любую другую способность. Называется она - Повышение Характеристик.
ответ
События в помощь. Почитайте про событийно-ориентированные языки программирования. Jass является таким
ответ
в чем редактор вкв3 отличается от редактора ск2 - к сожалению, в вк3-шном эдиторе не удастся отловить все данные.
если ты скажешь, что конкретно делает твой спелл, тебе могут подсказать более легкий вариант исполнения
насчет спецэффектов - утечка решается просто
  1. создаешь точку, если спец на земле. если спец на юните, точка не требуется.
  2. собсно воспроизводишь спец
  3. и сразу его удаляешь. спец удалится тогда, когда доиграет до конца его анимация
  4. кастом скриптом удаляешь точку, если 1 часть 1 пункта актуальна
ответ
GoblinSpore, можно менять способности с помощью способности "Техника" 'ANeg'
ответ
Ну как как, морфнуть героя в другого героя, у которого будет эта способность.
Увы добавить способность в HeloList низя, так что юзаем обходные пути с морфами и техникой.

23

» WarCraft 3 / Карта вылетает :(

Похожие вопросы:

ответ
В этом архиве ищи свои скиллы, в [скобках] смотри нужный ID.
ответ
Я постоянно порываюсь весь вар снести и изучение джасса, которое отнимат
Посмотрел твоя карта, ужасный триггер, тройная нагрузка, и Одинаково события! поэтому мы объединение триггер и сократилось нагрузка и чуть меньше килобайт весит карт.
Я сделал полностью оптимизация ГУИ вместо джасс.
Как вам карта?
почему гуи+джасс? Потому что кто не включает UMSWE или русификатор триггеров, различные проблем.
Rare, что решает проблем?
ответ
mpq редакторы в помощь, на сайте есть Mpq мастер, RMPQ, Laddik's mpq editor - поиск в помощь ссылочка
ответ
Steal nerves:
если фаталит в игре
Никто не знает (( карта нужна
Если ошибки в триггерах, то пробуй использовать логгер jass
Если в модели, то пробуй убрать из карты по одной модели
Короче отключай и смотри/проверяй
если это при тесте мапы происходит возможно в коде
ответ
Попробуй отключить триггеры, для начала, и затем проверь, запустится ли карта в игре. Особенно те, которые были созданы/редактированы относительно недавно до появления фатала.

23

» WarCraft 3 / 1 юнит = отряд

Похожие вопросы:

ответ
Умирающий юнит, в том понятии, в каком его жуёт игра, не имеет баффов.
Вместо "Умирает" отлавливай поулчение смертельного удара (событие юнит получает урон).
Если полученный урон > оставшегося здоровья - то сделать всё то, что у тебя для умирающего
ответ
отряд организован по принципу множества
если в отряде уже есть юнит то не запись произведена не будет
ответ
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
  1. Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
  1. Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка
ответ
Сначало создай юнит без москиты потом его в группу дай а после чего дай маскит ему и все

23

» WarCraft 3 / В чем ошибка?

Похожие вопросы:

ответ
  1. Условие неправильное, не юнит триггера а юнит входящий в область.
  2. Сделай действие во вкладке Боевая единица - добавить способность юниту.
ответ
Раздели вейтом, конверсия требует нескольких моментов для доделки...
Долой "темный", юзай морф медведя или Иллидана
это не спасёт от потери приобретённых триггерно спеллов
ответ
Melissa:
на твоей мапе все работает о_о
вата фак....

в первой версии селектора событие выделения было только у игрока 1, как у тебя
получается, если впихнуть событий выделения на игрока больше одного, они перестают работать?
ответ
нет нельзя
юзай смерч и дамикаст
подробнее там xgm.guru/forum/showthread.php?t=615
ответ
Nero-PC, если подготовка только началась то юнита ещё нету
он появится лишь по окончанию подготовки
тебе надо смотреть не юнит а тип юнита
там есть реакция на событие - подготавливаемый тип юнита
или чтото подобное
на джасс это будет
int GetTrainedUnitType();

23

» WarCraft 3 / Иконки способностей для предметов

Похожие вопросы:

ответ
Я так и сделал, не получалось потому, что надо два заклинания делать....
Один буферизуется другой нет... Еще один вопрос по теме, что значит буферизуется\не буферизуется? И можно тему закрывать.
ответ
~8gabriel8:
mishanka122:
Если во всех картах одинаковый id, значит покопайся в хеше.
Это как, можно в личку?
Проблему решил, переделав стандартную способность, а не создавая нестандартную. Это почти что панацея от подобных случаев, когда id (ещё называют raw-code) способности меняется.

23

» WarCraft 3 / Вылетает вар.

Похожие вопросы:

ответ
Никто доподлинно не знает что Вы делали в своей карте, кроме Вас. После чего это началось? Пока могу только порекомендовать отключить все триггеры в карте — если баг пропадет, значит поочередно включайте триггеры и ищите, какой из них вызывает баг. Если не пропадет, значит причина не в триггерах.
ответ
тогда всё ясно карта не полностью скачивается
у меня работает всё
это проблема у тех кто качает карту(диск С забит,браузер тупит или ещё какая нить фигня)
решается либо уменьшением веса карты либо пусть качают через варик
ответ
Лич по тихому сидел правило баги, 1 карту запустил а вторую правил....
ответ
Походу зацикливание, триггерное перемещение предмета тоже приказ.

23

» WarCraft 3 / Игровой чат

Принятый ответ
Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
вот тот самый метод

23

» WarCraft 3 / Настройка Канала

Похожие вопросы:

ответ
Можно поставить юниту моментальный каст заклинания, занулив "анимация обратный ход броска, точка броска"тогда этой рамочки не будет.
Проверил уже с удалением из выбора?
ответ
Steal nerves:
Может быть он изначально скрыт? У меня тоже скрыт, нужно в настройках включить изображение
xgm.guru/p/100/190231?postid=348072#comment4 в ссылке есть текстовик, там написаны как настраивать канал, за что отвечают пункты

23

» WarCraft 3 / Замена типа брони

Похожие вопросы:

ответ
Tovio, вроде как нет. Только путем изменения стандартных/переписыванием движка варика.

23

» WarCraft 3 / Двумерные массивы

Принятый ответ
Похожие вопросы:

ответ
в джасс нету двухмерных
они есть в вджасс
можешь хоть 100 мерный но размеры массива надо заранее указывать размер массива
ответ
читаем последние комментарии, и юзаем поиск

23

» WarCraft 3 / нужна помощь с тригерром(тригерами)

Похожие вопросы:

ответ
Steal nerves:
раскрыть
При инициализации создаешь базу, есть функция генерирующее случайное число.
Забиваешь базу данных
UT[0] = пехотинец
UT[1] = бугай
UT[2] = лучница
Count = 2 это кол-во макс. типов, нумерация идёт с нуля у меня
CountU = 20 макс. возможное кол-во юнитов. Здесь можете сами указать . а вообще можно отказаться от этой переменной, проставляете сразу в цикл
Теперь как сделать рандом
set RandomCount = от 1 до CountU генерирует случайное кол-во юнитов
Цикл A от 1 до RandomCount надеюсь знаете как работает цикл? А то многие новички неизнают
-set RandomType = от 0 до Count генерируем случайный тип
-создать юнита с типом UT[RandomType]
Конец цикла
Вообще можно раскрыть BJ функцию и посмотреть как там генерируют кол-во циклом
тему то переименуйте

23

» WarCraft 3 / MemHack

Похожие вопросы:

ответ
Nelloy, я непонимаю как ты собрался делать систему сохранений без локальных файлов? Что за бред? Сейвы априори не могут быть одинаковыми у всех игроков, потому что они постоянно меняются!
Неможет у всех игроков быть одинаковый сейв, как ты собрался рассказать что ты прочитал из файла у красного игрока, если у синего нет такого файла, а у синезелёного в файле совершенно другое содержимое, это и есть локальные файлы!
Тебе так и так придется синхронизировать сейв.
Не понимаю в чем проблема? 100500 сейвов работают на preload exploit и прекрасно себя чуствуют, если вам банальный синк который разжеван в 101 месте не по зубам, сразу оставляем в покое мемхак.
ответ
Возможно "канал" так же имеет отличную от остальных абилок структуру
Рабочий вариант
function StartAbilityCD takes unit whichUnit, integer abilityId returns boolean
local integer pAbility = 0
local real cd = GetAbilityCD(abilityId, GetPlayerId(GetOwningPlayer(whichUnit))+1)
if whichUnit == null or GetUnitAbilityLevel( whichUnit, abilityId ) < 1 or cd == 0.00 then
return false
endif

set pAbility = GetUnitAbility(whichUnit, abilityId)
if pAbility < 1 then
return false
else
if RMem(pAbility+0x134)==-1 and RMem(pAbility+0x138)==-1 then
call WMem(pAbility+0x134,0)
call WMem(pAbility+0x138,0)
endif
set Memory[pReserverdIntArg1 / 4] = mR2I(cd)
call CallThisCallWith2Args( pStartAbilityCD, pAbility, pReserverdIntArg1 )
return IsAbilityOnCooldown( pAbility )
endif
return false
endfunction

23

» WarCraft 3 / Где заказать?!?

Похожие вопросы:

ответ
Armouk, во первых это не вопрос
во вторых - почему тебе должны помогать?
лично я не вижу не 1 причины чтобы делать за тебя карту
или ты бог а все вокруг твои рабы?
если ты и вправду так думаешь то тебе на сайт любителей бдсм
ответ
это Q/A
тут разрешены только вопросы
в следующий раз за заявки типа "сделайте мне что либо" пойдут варны
ответ
Поскольку его не пугает наличие большого влияния промахов на геймплей - скорее всего он делает рпг. Имхо в рпг всегда клево смотрятся тексттаги полученного урона, для создания которых необходимы триггеры на отлов получения урона. А отлавливаемый урон - можно и прохилить.
Для прохила(и вообще всех манипуляций с задержкой в 0.00 сек) лично я юзаю такие костыли:
Либа здесь только для доп табуляции. Я за чистый жасс + дефайны.
library ZeroTimeEvent

    globals
        constant integer ZTEArraySize = 64//Even 32 is alot, 64 is too much! Exactly what I need!
        timer Zero//Used for 0. sec uses
        integer ZTECurrent = 0
        unit array ZTEUnits[ZTEArraySize]
        integer array ZTEIntegers[ZTEArraySize]
        real array ZTEReals[ZTEArraySize]
        trigger array ZTETriggers[ZTEArraySize]
    endglobals
    
    function ZeroTimeEvent takes nothing returns nothing
            loop
                set  ZTECurrent = ZTECurrent - 1
                call TriggerExecute( ZTETriggers[ZTECurrent] )
                exitwhen ZTECurrent < 1
            endloop
    endfunction
    
    #define ZTEAddUnit(u) = {
        set  ZTEUnits[ZTECurrent] = u
    }
    
    #define ZTEAddInteger(i) = {
        set  ZTEIntegers[ZTECurrent] = i
    }
    
    #define ZTEAddReal(r) = {
        set  ZTEReals[ZTECurrent] = r
    }
    
    #define ConfirmZTE(trig) = {
        set  ZTETriggers[ZTECurrent] = trig
        set  ZTECurrent = ZTECurrent + 1
        call TimerStart( Zero, ZeroTime, false, function ZeroTimeEvent )
    }
    
    
    
endlibrary
Пример использования
#define UnitRemoveForceAttack(u) = {
    call UnitAddAbility( u, 'Abun' )
    call UnitRemoveAbility( u, 'Abun' )
         ZTEAddUnit(u)
         ConfirmZTE(CheckIfUnitHasA002)
}
Минус такой системы в необходимости создавать триггер для каждого блока кода, т.к. массивы блоков кода запрещены
ответ
Absorbentum, Заказ небольших триггерных или джаз систем тоже разрешен в теме заказа заклинаний а вообще-если хотите серьезно сотрудничать создайте свой блог или презентуйте проект чтобы заинтересовать людей.

23

» WarCraft 3 / Утечка или не утечка.

Похожие вопросы:

ответ
Alexander69, xgm.guru/p/wc3/optimisations
внимательно прочти то что там написано
особенно про переменные
если коротко то объект не может быть удалён из памяти пока используется (хранится в переменных/хэше/кэше)
ответ
Вот как должен выглядеть полностью правильный триггер без утечек, единственная утечка создастся только при первом использовании, это я так понял переменная группы, ее обнулять нельзя, иначе скил будет работать только раз.
ответ
передача объекта в качестве параметра не влияет на утечку. учитывается только назначение его в переменную, set var=.
ответ
создаешь объект, спрашиваешь, какой у него handle
если меньше 0x100000 - беспокоиться не о чем, он локальный и сам разрушится, если не помешаешь ссылками на него (да и то не факт, что это влияет для них). тем паче, что даже в нативке указывается, вечная или нет деформация
этот (terraindeform) - локальный, если что.

23

» WarCraft 3 / Камера

Похожие вопросы:

ответ
периодически устанавливать камеру в нужном положении\высоте
или в мемхак
ответ
~8gabriel8:
По идее тут могут быть три таких решения:
  • Задать камере bounds, чтобы обзор не выходил за рамки определённой зоны;
  • С периодичностью 0.1 секунда устанавливать обзор в положение указанной камеры;
  • Создать невидимого дамми и привязать камеру к нему.
ответ
Попробуй эту модель.
Камеру можно изменить через war3me.

23

» WarCraft 3 / Продажа предметов

Похожие вопросы:

ответ
Похоже, что никак. Смена владельца точно не помогает =)
ответ
Halian Izverg, в джнгп есть утилита
Fly называется
если не справишься с ней то пиши бд руками
500 объектов минут за 20 легко добавишь в бд
ответ
Diaboliko, у предметов с этим бага
юзай юнитов
с ними намного проще